package pe.com.bbva.carga.bo;

import java.util.List;

import pe.com.bbva.carga.domain.ProcesoCarga;
import pe.com.bbva.targps.domain.ConsultaGPS;
import pe.com.stefanini.core.bo.Grid;
import pe.com.stefanini.core.domain.UsuarioSession;
import pe.com.stefanini.core.exceptions.BOException;
import pe.com.stefanini.core.exceptions.DAOException;

public interface ProcesoCargaBO {
	public void save(ProcesoCarga procesoCarga) throws BOException, DAOException;
	public void delete(ProcesoCarga procesoCarga)throws BOException;
	@SuppressWarnings("rawtypes")
	public void deleteLog(Class procesoCarga, Long id)throws BOException;
	public void update(ProcesoCarga procesoCarga) throws BOException;
	public List<ProcesoCarga> findProcesosCarga(ProcesoCarga procesoCarga) throws BOException, DAOException;
	public List<ProcesoCarga> findProcesosCargaRango(ProcesoCarga procesoCarga, String fechaInicio, String fechaFin)throws BOException, DAOException;
	public ProcesoCarga findById(Long id) throws BOException, DAOException;
	public Grid<ProcesoCarga> findToGrid(ProcesoCarga procesoCarga, String order, int page, int rows) throws BOException, DAOException;
	public Grid<ConsultaGPS> findToGridGPS(List<ConsultaGPS> consultas, String order, int page, int rows) throws BOException, DAOException;
	public Long  ValidaCargaEnProceso() throws BOException;
	public List<String> consolidarCarga(Long idTurno, String fechaProceso) throws DAOException;
	public void cambiaFacturado(ProcesoCarga proceso, UsuarioSession usuario) throws DAOException, BOException;
}